<?php

class Usuario extends CActiveRecord
{
	public $senhaAntiga;
	public $senhaNova;
	public $senhaNova2;
	
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

	public function tableName()
	{
		return 'usuario';
	}
	
	public function rules()
	{
		return array(
			array('nome, email, usuario, senha, nascimento, senhaAntiga, senhaNova, senhaNova2', 'required', 'on'=>'update'),
			array('nome, email, usuario, senha, nascimento, senhaNova2', 'required', 'on'=>'insert'),
			array('permissao', 'numerical', 'integerOnly'=>true),
			array('nome, email, usuario, senha, senhaAntiga, senhaNova, senhaNova2', 'length', 'max'=>200),
			
			// Regra para validar o email
			array('email', 'email'),
			
			// Regra para a as novas senhas serem iguais (Scenario-> alterarSenha)
			array('senhaNova, senhaNova2', 'compare', 'compareAttribute'=>'senhaNova', 'message'=>'', 'on'=>'update'),
			array('senhaNova, senhaNova2', 'compare', 'compareAttribute'=>'senhaNova2', 'message'=>'Senhas não batem', 'on'=>'update'),
			
			// Regra para a as novas senhas serem iguais (Scenario-> cadastro)
			array('senha, senhaNova2', 'compare', 'compareAttribute'=>'senha', 'message'=>'', 'on'=>'insert'),
			array('senha, senhaNova2', 'compare', 'compareAttribute'=>'senhaNova2', 'message'=>'Senhas não batem', 'on'=>'insert'),
			
			//Regra para comparar a senha com a senha antiga, ambas devem ser identicas
			array('senha', 'compare', 'compareValue'=>$this->senhaAntiga, 'message'=>'Senha incorreta', 'on'=>'update'),
			
			// The following rule is used by search().
			// Please remove those attributes that should not be searched.
			array('id_usuario, nome, email, usuario, senha, permissao, nascimento, senhaAntiga, senhaNova, senhaNova2', 'safe', 'on'=>'search'),
		);
	}
	
	public function relations()
	{
		return array(
			'uploads' => array(self::HAS_MANY, 'Upload', 'id_usuario_fk'),
		);
	}
	
	public function attributeLabels()
	{
		return array(
			'id_usuario' => 'Id Usuario',
			'nome' => 'Nome',
			'email' => 'Email',
			'usuario' => 'Usuario',
			'senha' => 'Senha',
			'permissao' => 'Permissao',
			'nascimento' => 'Nascimento',
			'senhaAntiga' => 'Senha Antiga',
			'senhaNova' => 'Nova Senha',
			'senhaNova2' => 'Confirme a Senha',
		);
	}

	public static function getUsuario()
	{
		if (Yii::app()->user->isGuest)
			Yii::app()->controller->redirect(array('site/login'));
		return Yii::app()->user->Usuario;
	}
	
	protected function beforeSave()
	{
		$this->nascimento=date('Y/m/d', strtotime(str_replace('/', '-', $this->nascimento)));
		return TRUE;
	}
	
	protected function afterSave()
	{
		Yii::app()->user->setState("Usuario",$this);
		return TRUE;
	}
	
	protected function afterFind()
	{
		$this->nascimento=date('d/m/Y', strtotime($this->nascimento));
		return TRUE;
	}
}